package main

import (
	"io/ioutil"
	"log"
	"fmt"
	"encoding/csv"
	"strings"
	"io"
	"os"
	"time"
)

func main() {
	//记录开始时间
	start := time.Now()
	insertData()

	//记录结束时间
	//end := time.Now().UnixNano()
	//输出执行时间，单位为毫秒。
	fmt.Println(time.Since(start))
}


func insertData() {

	dat, err := ioutil.ReadFile("qyh.csv")
	if err != nil {
		log.Fatal(err)
	}
	var f1 *os.File
	var f2 *os.File
	var f3 *os.File
	var file1 ="./qyh1.sql"
	var file2 ="./qyh2.sql"
	var file3 ="./qyh3.sql"
	r := csv.NewReader(strings.NewReader(string(dat[:])))

	//判断文件是否存在
	f1, err = os.OpenFile(file1, os.O_TRUNC|os.O_CREATE|os.O_APPEND, 0666) //打开文件
	if err != nil {
		fmt.Println("打开文件失败")
	}
	f2, err = os.OpenFile(file2, os.O_TRUNC|os.O_CREATE|os.O_APPEND, 0666) //打开文件
	if err != nil {
		fmt.Println("打开文件失败")
	}
	f3, err = os.OpenFile(file3, os.O_TRUNC|os.O_CREATE|os.O_APPEND, 0666) //打开文件
	if err != nil {
		fmt.Println("打开文件失败")
	}
	var i = 0
	for {
		record, err := r.Read()
		if err == io.EOF {
			break
		}
		if err != nil {
			log.Fatal(err)
		}

		uid := record[0]
		//处理添加时间
		addTime := record[2]
		addT,err := time.Parse("2006/1/2 15:04:05", addTime)
		addS := addT.Format("2006-01-02 15:04:05")

		//获取截止时间
		arr := strings.Fields(addTime)
		end,err := time.Parse("2006/1/2", arr[0])
		endTime := end.AddDate(0, 0, 20)
		endS := endTime.Format("2006-01-02") + " 23:59:59"

		modTime := time.Now().Format("2006-01-02 15:04:05")
		var sql = fmt.Sprintf("INSERT IGNORE INTO `user_rights` (`uid`, `right_id`, `activity_code`, `type`, `right_code`, `reward_time`,  `end_time`,  `last_modify_time`, `status`) VALUES ('%s', '639', 'qyh', 'api', '504', '%s', '%s', '%s', 10); \r\n", uid, addS, endS, modTime)

		if i < 2000 {
			io.WriteString(f1, sql) //写入文件(字符串)
		} else if (i <4000 && i >=2000) {
			io.WriteString(f2, sql) //写入文件(字符串)
		} else {
			io.WriteString(f3, sql) //写入文件(字符串)

		}


		fmt.Println(sql)
		i++
	}

	f1.Close()
	f2.Close()
	f3.Close()


}
